﻿using CozeDomain.Entities;
using CozeDto.SaleApplyForDtos;
using D.UtilCore.Dtos;
using D.UtilFreesqlOrm;

namespace CozeDomain.IServices
{
    /// <summary>
    /// 分销员申请接口
    /// </summary>
    public interface ISaleApplyForService : IBaseService<SaleApplyForEntity>
    {
        /// <summary>
        /// 添加
        /// </summary>
        /// <param name="reqAddSaleApplyFor"></param>
        /// <returns></returns>
        Task<ApiResult<int>> AddSaleApplyForAsync(ReqAddSaleApplyFor reqAddSaleApplyFor);

        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="ids"></param>
        /// <returns></returns>
        Task<ApiResult<int>> DeleteSaleApplyForAsync(List<string> ids);

        /// <summary>
        /// 修改
        /// </summary>
        /// <param name="reqUpdateSaleApplyFor"></param>
        /// <returns></returns> 
        Task<ApiResult<int>> UpdateSaleApplyForAsync(ReqUpdateSaleApplyFor reqUpdateSaleApplyFor);

        /// <summary>
        /// 单个查询
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns> 
        Task<ApiResult<RepSaleApplyForInfo>> GetSaleApplyForAsync(string id);

        /// <summary>
        /// 分页查询
        /// </summary>
        /// <param name="reqQuerySaleApplyForPage"></param>
        /// <returns></returns>
        Task<ApiResult<PageModel<RepSaleApplyForInfo>>> QuerySaleApplyForPagesAsync(ReqQuerySaleApplyForPage reqQuerySaleApplyForPage);

        /// <summary>
        /// 查询我的申请记录
        /// </summary>
        /// <returns></returns>
        Task<ApiResult<List<RepSaleApplyForInfo>>> GetSaleApplyForListAsync(string userId);
    }
}
